package designPatterns_demo.singleton_pattern.demo1;
/**
 * 
 *
 * Description: 第七种（双重校验锁）
 * 
 *  这个是第二种方式的升级版，俗称双重检查锁定，详细介绍请查看，在JDK1.5之后，双重检查锁定才能够正常达到单例效果。
 *
 * @author zhangxujun
 * @version 1.0
 * <pre>
 * Modification History: 
 * Date         Author			Version     Description 
 * ------------------------------------------------------------------ 
 * 2017年6月12日      zhangxujun       1.0         1.0 Version 
 * </pre>
 */
public class SingletonDemo7 {
	/**
	 * Java并发编程：volatile关键字解析
	 * http://www.cnblogs.com/dolphin0520/p/3920373.html
	 */
	private static volatile SingletonDemo7 instance;
	
	private SingletonDemo7() {
		
	}
	
	public static SingletonDemo7 getInstance() {
		if (null == instance) {
			synchronized (SingletonDemo7.class) {
				if (null == instance) {
					instance = new SingletonDemo7();
				}
			}
		}
		return instance;
	}
}
